﻿
var IdPropiedadHidden;
var FechaPropiedadHidden;
var MontoPropiedadHidden;
var IdClienteHidden;
$(document).ready(main);
function main() {
    ejecutarPorDefaultBuscarCliente();
    ejecutarPorDefaultBuscarPropiedad();
    $("#botonbuscarClienteR").button({
        icons: {
            primary: "ui-icon-search"
        },
        text: false
    });
    $("#botonbuscarPropiedadR").button({
        icons: {
            primary: "ui-icon-search"
        },
        text: false
    });
    $("#FechaVentaR").datepicker({ dateFormat: 'dd/mm/yy' });
    $("#botonRegistro").click(registrarConsulta);
    $("#buscarPropiedadR").click(buscarPropiedadR);
    $("#buscarClienteR").click(buscarClienteR);
    $("#botonCancelar").click(menuConsulta);
    $("#cancelarPropiedadR").click(menuConsulta);
    $("#cancelarClienteR").click(menuConsulta);

}
function vaciarErrores() {
    document.getElementById("errorIdPropiedadR").innerHTML = " ";
    document.getElementById("errorIdClienteR").innerHTML = " ";
    document.getElementById("errorFecha").innerHTML = " ";
    document.getElementById("errorComisionR").innerHTML = " ";
    document.getElementById("errorMonto").innerHTML = " ";
}
function ejecutarPorDefaultBuscarCliente() {
    var nombre_clienteB = $("#nombre_cliente"),
            apellido_clienteB = $("#apellido_cliente"),
            allFields = $([]).add(nombre_clienteB).add(apellido_clienteB),
            tips = $(".validateTips");

    function updateTips(t) {
        tips
                .text(t)
                .addClass("ui-state-highlight");
        setTimeout(function () {
            tips.removeClass("ui-state-highlight", 1500);
        }, 500);
    }

    $("#dialog-formBuscarCliente").dialog({
        autoOpen: false,
        height: 600,
        width: 850,
        modal: true,
        buttons: {
            "Aceptar": function () {
                var bValid = true;
                allFields.removeClass("ui-state-error");
                if (bValid) {
                    if ($("input:radio[name='R1']").is(":checked")) {
                        var idCliente, nombreCliente, apellidoCliente;
                        $("input:radio[name='R1']:checked").parents("tr").children("td").each(function (index2) {
                            switch (index2) {
                                case 1:
                                    idCliente = $(this).text();
                                    break;
                                case 2:
                                    nombreCliente = $(this).text();
                                    break;
                                case 3:
                                    apellidoCliente = $(this).text();
                                    break;
                            }
                        })
                        document.getElementById("IdClienteR").value = nombreCliente + " " + apellidoCliente;
                        IdClienteHidden = idCliente;
                        $(".descripciones").show();
                        $(this).dialog("close");
                    }else {
                    alert("Debe seleccionar una fila");
                }
                } 
            },
            Cancel: function () {
                $(this).dialog("close");
            }
        },
        close: function () {
            allFields.val("").removeClass("ui-state-error");
        }
    });

    $("#botonbuscarClienteR").click(function () {
        $("#dialog-formBuscarCliente").dialog("open");
    });
}
function ejecutarPorDefaultBuscarPropiedad() {
    var direccion_propiedadB = $("#direccion_propiedad"),
            allFields = $([]).add(direccion_propiedadB),
            tips = $(".validateTips");

    function updateTips(t) {
        tips
                .text(t)
                .addClass("ui-state-highlight");
        setTimeout(function () {
            tips.removeClass("ui-state-highlight", 1500);
        }, 500);
    }

    $("#dialog-formBuscarPropiedad").dialog({
        autoOpen: false,
        height: 600,
        width: 850,
        modal: true,
        buttons: {
            "Aceptar": function () {
                var bValid = true;
                allFields.removeClass("ui-state-error");
                if (bValid) {
                    if ($("input:radio[name='R1']").is(":checked")) {
                        var idPropiedad, dirPropiedadR;
                        $("input:radio[name='R1']:checked").parents("tr").children("td").each(function (index2) {
                            switch (index2) {
                                case 1:
                                    idPropiedadR = $(this).text();
                                    break;
                                case 2:
                                    dirPropiedadR = $(this).text();
                                    break;
                                case 4:
                                    MontoPropiedadHidden = $(this).text();
                                    break;
                                case 5:
                                    FechaPropiedadHidden = $(this).text();
                                    break;
                            }
                        })
                        document.getElementById("Id_PropiedadR").value = dirPropiedadR;
                        document.getElementById("MontoVentaR").value = MontoPropiedadHidden;
                        IdPropiedadHidden = idPropiedadR;
                        $(".descripciones").show();
                        $(this).dialog("close");
                    } else {
                        alert("Debe seleccionar una fila");
                    }
                }
            },
            Cancel: function () {
                $(this).dialog("close");
            }
        },
        close: function () {
            allFields.val("").removeClass("ui-state-error");
        }
    });

    $("#botonbuscarPropiedadR").click(function () {
        $("#dialog-formBuscarPropiedad").dialog("open");
    });
}
function menuConsulta() {
    window.history.back();
}
function registrarConsulta() {
    vaciarErrores();
    var enviarsela = {
        IdPropiedad: IdPropiedadHidden,
        IdCliente: IdClienteHidden,
        Comision: document.getElementById("ComisionR").value,
        MontoVenta: document.getElementById("MontoVentaR").value,
        FechaVentConcretada: document.getElementById("FechaVentaR").value
    }
    console.log(enviarsela);
    fv = new formValidator();
    if (fv.isEmpty(document.getElementById("Id_PropiedadR").value)) {
        fv.raiseError("");
        document.getElementById("errorIdPropiedadR").innerHTML = "Por favor ingrese una propiedad.";
    }
    if (fv.isEmpty(document.getElementById("IdClienteR").value)) {
        fv.raiseError("");
        document.getElementById("errorIdClienteR").innerHTML = "Por favor ingrese un cliente.";
    }
    if (fv.isEmpty(document.getElementById("FechaVentaR").value)) {
        fv.raiseError("");
        document.getElementById("errorFecha").innerHTML = "Por favor ingrese una fecha.";
    }
    if (fv.isEmpty(document.getElementById("ComisionR").value)) {
        fv.raiseError("");
        document.getElementById("errorComisionR").innerHTML = "Por favor ingrese una comision.";
    }
    if (fv.isEmpty(document.getElementById("MontoVentaR").value)) {
        fv.raiseError("");
        document.getElementById("errorMonto").innerHTML = "Por favor ingrese un monto.";
    }
    if (!fv.isEmpty(document.getElementById("FechaVentaR").value)) {
        var cadena = $("#FechaVentaR").val();
        var fechaVenta = document.getElementById("FechaVentaR").value;
        var a = fechaVenta.split("/");
        var y = parseInt(a[2]);
        var m = parseInt(a[1]);
        var d = parseInt(a[0]);
        var a1 = FechaPropiedadHidden.split("/");
        var y1 = parseInt(a1[2]);
        var m1 = parseInt(a1[1]);
        var d1 = parseInt(a1[0]);
        console.log('fechaVenta: ' + fechaVenta + ' ' + y + ' ' + m + ' ' + d + ' ');
        console.log('fechaRegistro: ' + FechaPropiedadHidden + ' ' + y1 + ' ' + m1 + ' ' + d1 + ' ');

        if (y < y1) {
            fv.raiseError("");
            document.getElementById("errorFecha").innerHTML = "La fecha de venta es anterior a la fecha de registro de la propiedad en venta.";
        } else {
            if (y1 == y) {
                if (m < m1) {
                    fv.raiseError("");
                    document.getElementById("errorFecha").innerHTML = "La fecha de venta es anterior a la fecha de registro de la propiedad en venta.";
                } else {
                    if (m == m1) {
                        if (d < d1) {
                            fv.raiseError("");
                            document.getElementById("errorFecha").innerHTML = "La fecha de venta es anterior a la fecha de registro de la propiedad en venta.";
                        } else {

                        }
                    }
                }
            }
        }
    }
    if (!fv.isEmpty(document.getElementById("MontoVentaR").value)) {
        console.log('MontoVenta ' + document.getElementById("MontoVentaR").value);
        console.log('MontoPropiedad ' + MontoPropiedadHidden);

        if (parseFloat(MontoPropiedadHidden) > parseFloat(document.getElementById("MontoVentaR").value)) {
            fv.raiseError("");
            document.getElementById("errorMonto").innerHTML = "Monto menor al precio base.";
        }
    }       
    if (fv.numErrors() < 1) {
        console.log(enviarsela);
        var jsonData = JSON.stringify(enviarsela);
        $.ajax({
            type: "POST",
            data: jsonData,
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            url: "registrarConsulta",
            beforeSend: esperarRegitro,
            success: llegadaRegistro()
        });
        return true;
    }
    else {
        fv.displayErrors();
        return false;
    }

}
function errorJS(data) {
    alert();
    alert("Error");
}
function esperarRegitro() {

}
function llegadaRegistro() {

    alert("Registro Exitoso.");
    window.history.back();
}
function buscarPropiedadR() {
    var enviar = {
        direccion: document.getElementById("direccion_propiedad").value,
        id_persona: sessionStorage.getItem("idPersona"),
        id_cargo: sessionStorage.getItem("cargo")
    }

    

    var jsonData = JSON.stringify(enviar);
    console.log(jsonData);
    $.ajax({
        type: "POST",
        data: jsonData,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "buscarPropiedadR",
        success: llegadaListaPropiedad
    });
    $("#tablaDinamicaPropiedadR").show();
    //$("#botonesSeleccion").show();
}
function llegadaListaPropiedad(data) {
    var lista = data.listaConsulta; //si se cambia esto cambia elerror
    console.log(data);
    if ((lista != null)&&((lista + "").length > 0)){
        var escritor = "";

        escritor += "<table id='resultadosPropiedad'><thead><tr><th></th><th style=\"display:none\">Id Propiedad</th><th>Direccion</th><th>Area</th><th>Precio</th><th>Registro</th></tr></thead>";

        escritor += "<tbody id='cuerpoPropiedad'>";
        //alert("llegue hasta aqui?");
        $.each(lista, function (i, item) {
            escritor += "<tr>";
            //se puede poner otros botones

            escritor += '<td><input id="RadioButton1" name="R1" type="radio" value="2" style="width:30px;" /></td>';
            escritor += '<td style=\"display:none\">' + item.id_propiedad + '</td>';
            escritor += '<td>' + item.direccion + '</td>';
            escritor += '<td>' + item.area + '</td>';
            escritor += '<td>' + item.precio + '</td>';
            escritor += '<td>' + item.fecha_registro + '</td>';
            escritor += "</tr>";
        });
        escritor += "</tbody>";

        escritor += "</table>";
        //$("#NavPosicionBP").show();
        $("#tablaDinamicaPropiedadR").html(escritor);

          $(function () {
                    /* initiate plugin */
                    $("#holderRCPro").jPages({
                        containerID: "itemContainer",
                        perPage: 5
                    });
                    /* on select change */
                    $("select").change(function () {
                        /* get new nº of items per page */
                        var newPerPage = parseInt($(this).val());
                        /* destroy jPages and initiate plugin again */
                        $("holderRCPro").jPages("destroy").jPages({
                            containerID: "itemContainer",
                            perPage: newPerPage
                        });
                    });
                });


    } else {

        escritor = "<p>No se encontró ninguna coincidencia</p>";
        $("#tablaDinamicaPropiedadR").html(escritor);
        //$("#NavPosicionBP").hide();

    }
}
function buscarClienteR() {
    var enviar = {
        nombre: $("#nombre_cliente").attr("value"),
        apellido: $("#apellido_cliente").attr("value")
    }

    var jsonData = JSON.stringify(enviar);

    $.ajax({
        type: "POST",
        data: jsonData,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "buscarClienteR",
        success: llegadaListaCliente
    });
    $("#tablaDinamicaClienteR").show();
    //$("#botonesSeleccion").show();
}



function llegadaListaCliente(data) {
    var lista = data.listaConsulta; //si se cambia esto cambia elerror
    console.log(data);
    if ((lista + "").length > 0) {
        var escritor = "";

        escritor += "<table id='resultadosCliente'><thead><tr><th></th><th style=\"display:none\">Id Cliente</th><th>Nombres</th><th>Apellidos</th><th>DNI</th></tr></thead>";

        escritor += "<tbody id='cuerpoCliente'>";
        $.each(lista, function (i, item) {
            escritor += "<tr>";
            //se puede poner otros botones

            escritor += '<td><input id="RadioButton1" name="R1" type="radio" value="2" style="width:30px;" /></td>';
            escritor += '<td style=\"display:none\">' + item.id_cliente + '</td>';
            escritor += '<td>' + item.Nombres + '</td>';
            escritor += '<td>' + item.Apellidos + '</td>';
            escritor += '<td>' + item.DNI + '</td>';
            escritor += "</tr>";
        });
        escritor += "</tbody>";

        escritor += "</table>";
        //$("#NavPosicionBCR").show();
        $("#tablaDinamicaClienteR").html(escritor);
        $("#holderRCClie").jPages({//id del div de la paginacion
            containerID: "resultados", //cuerpo es el id del tbody de mi tabla
            perPage: 10, // numero de filas por pagina
            delay: 20,
            startPage: 1, // pagina que se visualizara en la pantalla
            midRange: 3, // rango de numeros de pagina q se muestran en el div de paginacion, aqui es dond aparecen los puntos suspensivos: 1,2,3...10
            animation: "flipInY"
        });

    } else {
        escritor = "<p>No se encontró ninguna coincidencia</p>";
        $("#tablaDinamicaClienteR").html(escritor);
    }
}

function permite(obj, elEvento, permitidos, allowDecimal) {

    var numeros = "0123456789";
    var caracteres = " abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
    var numerosCaracteres = numeros + caracteres;
    var teclasEspeciales = [8, 37, 39, 46];

    switch (permitidos) {
        case 'num':
            permitidos = numeros;
            break;
        case 'car':
            permitidos = caracteres;
            break;
        case 'numCar':
            permitidos = numerosCaracteres;
            break;
    }

    if (window.event) {
        key = elEvento.keyCode;

    }
    else if (elEvento.which) {
        key = elEvento.which;

    }

    var evento = elEvento || window.event;
    var codigoCaracter = evento.charCode || evento.keyCode;
    var caracter = String.fromCharCode(codigoCaracter);
    var isFirstD = allowDecimal ? String.fromCharCode(key) == '.' && obj.value.indexOf('.') == -1 : false;

    return (permitidos.indexOf(caracter) != -1) || isFirstD;
}

